The information network known as the World Wide Web (WWW), which is a subset of the well-known Internet, is arguably the most complete source of publicly accessible information available. Anyone with a suitable Internet appliance such as a personal computer with a standard Internet connection may access (go on-line) and navigate to information pages (termed web pages) stored on Internet-connected servers for the purpose of garnering information and initiating transactions with hosts of such servers to and pages.
Many companies offer various subscription services accessible via the Internet. For example, many people now do their banking, stock trading, shopping, and so forth from the comfort of their own homes via Internet access. Typically, a user, through subscription, has access to personalized and secure WEB pages for such functions. By typing in a user name and a password or other personal identification code, a user may obtain information, initiate transactions, buy stock, and accomplish a myriad of other tasks.
One problem that is encountered by an individual who has several or many such subscriptions to Internet-brokered services is that there are invariably many passwords and/or log-in codes to be used. Often a same password or code cannot be used for every service, as the password or code may already be taken by another user. A user may not wish to supply a code unique to the user such as perhaps a social security number because of security issues, including quality of security, that may vary from service to service. Additionally, many users at their own volition may choose different passwords for different sites so as to have increased security, which in fact also increases the number of passwords a user may have.
Another issue that can plague a user who has many passworded subscriptions is the fact that they must bookmark many WEB pages in a computer cache so that they may quickly find and access the various services. For example, in order to reserve and pay for airline travel, a user must connect to the Internet, go to his/her book-marks file and select an airline page. The user then has to enter a user name and password, and follow on-screen instructions once the page is delivered. If the user wishes to purchase tickets from the WEB site, and wishes to transfer funds from an on-line banking service, the user must also look for and select the personal bank or account page to initiate a funds transfer for the tickets. Different user names and passwords may be required to access these other pages, and things get quite complicated.
Although this preceding example is merely exemplary, it is generally known that much work related to finding WEB pages, logging in with passwords, and the like is required to successfully do business on the WEB.
A system known to the inventor and described in the cross-reference section above provides an interactive Internet portal that enables users to store their WEB pages, user names, passwords, and a system that performs pre-defined tasks such as navigation and interaction between WEB servers based on user pre-programming (user profiles). Such a system greatly simplifies on-line or network-based business transactions.
It is known in the art that certain providers of Web services often work with partners representing other companies offering similar services. These partnerships are termed cobrand partnerships in the art.
An example of a cobrand relationship would be that of a company A offering services through a company B to subscribers of company B as if the added services were provided and maintained by company B, but in reality are provided by company A. In a typical case of cobranding, subscribers to the cobrand partner are not aware that the added services are actually provided by a company other than the cobrand partner, or in this case, company A.
A problem with cobranding services in prior art involves the amount of cooperation, engineering, configuration, and so on that must be performed by both the service-providing company and the cobrand partner. For example, knowledge workers from both companies must interface and cooperate in order to provide a functional interface and mechanism for subscribers of the cobrand partner to utilize in order to receive the extra value-added services.
A software utility is known to the inventor for creating and configuring a cobrand service package. Such a utility is taught in the co-related application Ser. No. 09/573,699, entitled “Method and Apparatus for Cobranding Portal Services and Normalizing Advertisements Delivered to Cobrand Subscribers, listed in the cross-reference section. This software utility comprises a function for installation and execution of the utility, a function for importing external data for use in the utility, a function for browsing and selecting functional services offered from within the utility, a function for constructing information pages, the information pages containing the imported external data and hyperlinks to the selected functional services, and a function for saving and submitting a configured utility to an entity for installation. The software utility is a self-contained utility, which upon completion functions as a service installation template for installing a cobrand service. By using the utility described above cobranded services may be efficiently implemented at Websites allowing added interaction capability and other services to existing Websites.
In addition to cobrand relationships, there exists on the Internet many popular service sites maintained by service-providing companies that are patronized by many users, thus indicating a wide popularity among users. Providing access to such popular Web locations and their services without requiring a user to physically navigate to the location is one of the primary goals of the inventor and is realized through a novel navigation sub-system that may be executed on behalf of a user according to user request. The navigation system executes according to machine-readable scripting, which provides such functionality as auto-log-in, automated form filling and submission, data gathering and summarization, navigation to secondary sites linked to a main site, and so on.
In order to provide such services through the portal system taught in disclosure included herein and referenced under the cross-reference section, an agreement must be forged between the company hosting the portal service and the company hosting a popular service site. Such an agreement, while not specifically a cobrand agreement, allows subscribers of portal services to access services of a popular site without being required to physically navigate to the site.
In order to implement proxy service access to popular Web locations, information is required from the particular location being added. Likewise, continuing information updates must be obtained from added sites in order that error-free access may be maintained over time. Such information may include data pertaining to the structure of a site, content of a site, site address, any added media functions to a site, and so on. Keeping apprised of current and up-to-date site revisions or changes presents a challenge to Web developers charged with implementing and maintaining proxy service-access to such sites, especially so, when there are many added sites.
One way to handle site revisions and other site changes is to allow Web-developers associated with a proxy service sole authorization to revise, add to, or otherwise alter a site. This may be practiced to insure that no changes are added which conflict with written scripts for accessing services, or at least without new scripts being written or old ones being revised to accommodate the site changes. However, this solution is an impractical one for a variety of reasons. One is that Web-developers specifically charged with maintaining popular sites are not likely to cooperate with those from a proxy service as they know best what their respective companies wish to do with a particular site in terms of construction and alteration. Allowing entities from an outside company to be the sole facilitators of a particular site, even with instruction provided by developers specific to the site in to question is generally not desired, even in exchange for sending clients to their services by proxy.
An alternative requires that Web-developers working to provide proxy services for a particular site continually monitor the site for additions, revisions, address changes, structure changes, and so on to insure that proxy services may continue on an ongoing basis in an un-interrupted fashion. One with skill in the art will recognize that if a developer is charged with maintaining proxy services to many sites, he or she may be considerably back-logged with tasks that are overdue. In the interim, proxy services to particular sites may be delayed for long periods.
A software tool is known to the inventor for automatically tracking activities related to the status and usage statistics of a plurality of Websites on a data packet network. Such a tool is taught in the co-related application Ser. No. 09/639,346, entitled “Method and Apparatus for Tracking Functional States of a Web-Site and Reporting Results to Web Developers”, listed in the cross-reference section. This software tool comprises a network communication capability for establishing network communication between the software tool and the tracked Websites; a plurality of data-reporting modules for obtaining and reporting data about tracked Websites; a data input function for excepting data from the reporting modules and from external sources; a data recording function for recording and logging the data received from the reporting modules and from the external sources; and a data management function for organizing and storing the received data and rendering the data accessible for use in software development. A software engineer or developer accesses the site-tracking software and connected database through a Web browser from a network-connected workstation in order to utilize data mined from Websites for the purpose of creating routines enabling automated navigation and site manipulation by proxy for subscribed users.
The system described above provides a more efficient method for managing web-site errors and changes that may occur in automated Websites. However, cooperation from the Websites themselves is still required in order to implement the various data-reporting modules taught. Moreover, database mining by developers for the purpose of discovering errors and changes as well as for adding new sites is still rather extensive.
It is taught in the priority documents related to this specification that proxy navigation and interaction is performed by a navigation sub-system taking instruction from machine-readable templates. Each template contains all of the required navigation and site-logic, as well as any required login, form filling, or other interaction logic needed to perform whatever tasks are ordered. In this sense, an instruction template for navigation, also termed a job-order, may vary considerably from another job-order containing a same Web site. For example, specific site logic may differ for a same URL wherein there are a variety of optional tasks that may be performed. Likewise, some job-orders (templates) will contain only one specific site-logic block if there is only one function performed at the site on behalf of all users. In yet another aspect, orders that encompass more than one site to navigate to may one or more site-logics in common, but in a different order of navigation and application.
With the types of complexities described above, it is desired to modularize templates so that specific blocks of templates such as site logic blocks may be easily replaced should they become non-functional. Furthermore, it is desired that Web-site changes may be detected by methods that require less cooperation from site-hosts.
What is clearly needed is a method and apparatus that enables automated Web site change detection and template repair without to unnecessarily involving Web-site hosts and without extensive labor incurred by program developers. Such a system would streamline automated proxy navigation and interaction for both clients and the service provider.